package com.miku.blog.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.miku.blog.domain.dto.UserInfoDTO;
import com.miku.blog.domain.pojo.ResponseResult;
import com.miku.blog.domain.UserInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.miku.blog.domain.vo.UserVo;
import org.springframework.lang.NonNull;

import java.util.List;

/**
* @author Miku
* @description 针对表【tb_user_info】的数据库操作Service
* @createDate 2022-05-25 23:09:23
*/
public interface UserInfoService extends IService<UserInfo> {


    /**
     * 修改信息
     * @param userInfoDTO
     * @return
     */
    ResponseResult updateInfo(UserInfoDTO userInfoDTO);


    /**
     * 根据用户昵称 获取 用户信息列表
     * @param nickName
     * @return
     */
    List<UserInfo> getAllUserInfoListByNickName(String nickName);

    /**
     * 根据用户ID  获取 用户信息
     * @param userId
     * @return
     */
    UserInfo getUserInfoByUserId(Integer userId);

    /**
     * 根据昵称 模糊查询 用户信息列表  -> 分页查询
     * @param current
     * @param size
     * @param nickName
     * @return
     */
    Page<UserInfo> getUserInfoListByLikeNickName(Integer current, Integer size, String nickName);


    /**
     * 根据用户ID 修改角色禁用状态
     * @param userId
     * @param isDisable
     * @return
     */
    boolean disableByUserId(Integer userId,Integer isDisable);

    /**
     * 根据UserInfoId 更新 昵称
     * @param userId
     * @param nickName
     * @return
     */
    boolean updateNickNameByUserId(Integer userId, String nickName);

    /**
     * 修改用户角色列表 及 其昵称
     * @param userVo
     * @return
     */
    ResponseResult updateNickNameAndRole(UserVo userVo);
}
